home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1985-04-03 | 22.4 KB | 529 lines
10 CLEAR,,1200:COLOR 7,0,0 20 DIM TIK$(100):DIM NAM$(100):DIM BUY(100) :DIM CURPR(100) : DIM SALESH(100) :DIM EPS(100): DIM NUMSH(100):DIM BVSH(100):DIM TEMPCURPR(100) 30 DIM O1(100) :DIM O2(100) : DIM O3(100) :DIM O4(100) 40 DIM W1(100):DIM W2(100):DIM W3(100):DIM W4(100):DIM W5(100):DIM PEAVG(100) 50 DIM W6(100):DIM W7(100):DIM W8(100):DIM W9(100):DIM WA(100):DIM MOVAVG(100) 60 DIM V1(100):DIM V2(100):DIM V3(100):DIM V4(100):DIM TEMPCURVOL(100):DIM CURVOL(100):DIM VOLAVG(100):DIM PERATIO(100) 70 DIM TIMELY(100):DIM SAFE(100):DIM YEARHI(100):DIM YEARLO(100) 80 DIM COUNT1(100):DIM BUYCOM(100):DIM SELCOM(100):DIM BRKEVEN(100):DIM DIVSH(100):DIM TOTCOM(100):DIM PCTCHG(100) 90 CLOSE:KEY OFF:CLS:COLOR 7,0 100 LOCATE 3,61:PRINT"tm":LOCATE 4,16:PRINT STRING$(15,205)" H o m e M a d e "STRING$(15,205) 110 LOCATE 7,29:PRINT"User Produced Software":PRINT TAB(29) STRING$(22,196):PRINT 120 LOCATE 9,32:COLOR 0,5:PRINT"<UNK! {FEFE}> StockTrack <UNK! {FEFE}>":COLOR 7,0 130 LOCATE 13,31:PRINT"901 West Pine #17B" 140 LOCATE 14,29:PRINT"Hattiesburg, MS 39401" 150 LOCATE 17,13:PRINT"If you use and value StockTrack a nominal contribution" 160 LOCATE 18,18:PRINT"($35 is suggested) would be much appreciated." 170 LOCATE 20,8:PRINT STRING$(64,205):LOCATE 21,33:PRINT"Copyright (c) 1984 Frederick Barthelme 180 LOCATE 20,35:PRINT" Rev: 3.0 " 190 '====== SET DATE & TIME 200 IF RIGHT$(DATE$,2)="84" THEN 300 210 LOCATE 25,61:PRINT DATE$;" ";TIME$ 220 LOCATE 25,61:PRINT " ":LOCATE 25,61:INPUT "",X$ 230 IF X$ = "" THEN 300 240 LOCATE 25,64:PRINT " ":LOCATE 25,64:INPUT "",Y$ 250 DATE$ = X$+"-"+Y$+"-84" 260 LOCATE 25,72:PRINT " ":LOCATE 25,72:INPUT "",Z$ 270 IF Z$ = "" THEN 300 280 LOCATE 25,75:PRINT " ":LOCATE 25,75:INPUT "",W$ 290 TIME$ = Z$+":"+W$ 300 '====== MAIN MENU 310 LOCATE 25,1:PRINT "Load Save Return Modem ChgDate Basic Quit ";DATE$;" ";TIME$ 320 X$ = INKEY$ 330 IF X$ = "" THEN 310 340 IF X$ <> "q" AND X$ <> "Q" THEN 380 350 IF X$ = "q" OR X$ = "Q" THEN LOCATE 25,45:PRINT "Are you sure?":Q$=INKEY$ 360 IF Q$ = "" THEN 350 370 IF Q$ = "y" OR Q$ = "Y" THEN SYSTEM 380 IF X$= "l" OR X$ = "L" THEN GOSUB 460 390 IF X$ ="s" OR X$ = "S" THEN GOSUB 1050 400 IF X$= "r" OR X$ = "R" THEN 490 410 IF X$= "c" OR X$ = "C" THEN GOSUB 220 420 IF X$= "B" OR X$ = "b" THEN CLS:GOSUB 3460:KEY ON:END 430 IF X$= "m" OR X$ = "M" THEN CLOSE:SYSTEM 440 GOTO 310 450 IF TC = 0 THEN 600 460 '======= MAIN DISPLAY 470 KEY OFF:COLOR 7,0 480 GOTO 770 490 CLS:LOCATE 1,1:PRINT "Tick T Buy Cur Chg V00 PSR PE P/BV EYld DYld %Ch Com Brk= %Por Net " 500 ' 510 FOR I = 1 TO M:PO = I+2:TA=0:TB=0 520 K = COUNT1(I) 530 GOSUB 2340:NEXT I 540 IF TC = 0 THEN 600 550 FOR I = 1 TO M:K = COUNT1(I):LOCATE I+2,69:PRINT USING " ###";((CURPR(K)*NUMSH(K))/TT)*100:NEXT I:M = 0 560 PRINT:PRINT USING " Cost: #####.##";TC:PRINT USING " Cur Val: #####.##";TT;:LOCATE ,40:PRINT "Portfolio: ";RK$;" ";DT$ 570 PRINT USING " Stk Chg: ####.##";TT-TC:PRINT USING "Cmsn I/O: #####.##";MC:PRINT USING " Net Val: #####.##";TT-MC:PRINT USING " Net Chg: #####.##";TT-(MC+TC) 580 PC = (((TT-MC)/TC)*100)-100 590 PRINT USING " Pct Chg: #####.##";PC;:PRINT"%" 600 TT=0:TC=0:MC=0 610 GOSUB 4240:LOCATE 25,1:PRINT "Add Chg LPrint Week Individual NewDat XtraStoks Port Select Mkt Files Quit " 620 X$=INKEY$ 630 IF X$="" THEN 620 640 IF X$ = "f" OR X$ = "F" THEN CLS:FILES:GOTO 610 650 IF X$ = "p" OR X$ = "P" THEN 2270 660 IF X$ = "m" OR X$ = "M" THEN GOSUB 4080 670 IF X$ = "l" OR X$ = "L" THEN GOSUB 3510 680 IF X$ = "a" OR X$="A" THEN I=NU+1:NU=NU+1:CLS:GOTO 3250 690 IF X$ = "c" OR X$ = "C" THEN GOSUB 2930 700 IF X$ = "w" OR X$ = "W" THEN 1220 710 IF X$ = "n" OR X$ = "N" THEN 940 720 IF X$ ="s" OR X$ = "S" THEN 2130 730 IF X$ ="q" OR X$ = "Q" THEN 90 740 IF X$ ="i" OR X$ = "I" THEN 1270 750 IF X$ ="x" OR X$ = "X" THEN 5110 760 GOTO 610 770 '====== I/O OPERATIONS 780 GOSUB 4240:PRINT "Portfolio NewPort Files Quit " 790 RN$=INKEY$:IF RN$ = "" THEN 790 800 IF RN$ = "p" OR RN$="P" THEN RK$ = "STOKTRAK":GOTO 860 810 IF RN$="q" OR RN$ = "Q" THEN RETURN 820 IF RN$ = "f" OR RN$="F" THEN CLS:FILES:GOTO 780 830 IF RN$ = "n" OR RN$="N" THEN GOSUB 4240:INPUT "New portfolio name. RTN aborts: ",RN$: IF RN$ <> "" THEN 850 840 GOTO 780 850 RK$ = RN$ 860 OPEN RK$+".NUM" FOR INPUT AS #2:INPUT #2,NU,DT$:CLOSE 870 OPEN RK$+".POR" FOR INPUT AS # 1 880 FOR A = 1 TO NU 890 INPUT #1,TIK$(A),NAM$( A),BUY(A),CURPR(A),SALESH(A),EPS(A),NUMSH(A),BVSH(A),O1(A) 900 INPUT #1,O2(A),O3(A),O4(A),W1(A),W2(A),W3(A),W4(A),W5(A),W6(A),W7(A),W8(A),W9(A),WA(A),V1(A),V2(A),V3(A),V4(A),CURVOL(A),TIMELY(A),SAFE(A),YEARHI(A),YEARLO(A),DIVSH(A),PEAVG(A) 910 NEXT A 920 OPEN RK$+".mkt" FOR INPUT AS #3:FOR I = 1 TO 10:INPUT #3,HISTDAT$(I),DOW(I),VOL(I),UPS(I),DNS(I),HI(I),LO(I),BLK(I):NEXT I:CLOSE 930 CLOSE: GOTO 610 940 '====== NEW FIGURES 950 GOSUB 4240:INPUT "NewData file. RTN aborts: ";Q$ 960 IF Q$ ="" THEN 1040 970 ON ERROR GOTO 90 980 OPEN RK$+".NUM" FOR INPUT AS #2:INPUT #2,NU,DT$:CLOSE 990 OPEN Q$ FOR INPUT AS # 3 1000 FOR I=1 TO NU:INPUT #3,TIK$(I),TEMPCURVOL(I),TEMPCURPR(I) 1010 O1(I)=O2(I):O2(I)=O3(I):O3(I)=O4(I):O4(I)=CURPR(I):V1(I)=V2(I):V2(I)=V3(I):V3(I)=V4(I):V4(I)=CURVOL(I) 1020 CURPR(I)=TEMPCURPR(I):CURVOL(I)=TEMPCURVOL(I) 1030 NEXT I 1040 GOTO 490 1050 '====== OUTPUT 1060 IF RK$="" THEN X$="n":GOSUB 4240:GOTO 1110 1070 GOSUB 4240:PRINT "Save as ";RK$;" (Y/N): " 1080 X$=INKEY$:IF X$="" THEN 1080 1090 DT$=DATE$+" "+TIME$ 1100 IF X$ = "y" OR X$ ="Y" THEN 1140 1110 LOCATE 25,1:INPUT "Enter new name. RTN aborts: ",RN$ 1120 IF RN$="" THEN 1210 1130 RK$=RN$ 1140 OPEN RK$+".POR" FOR OUTPUT AS # 1 1150 FOR A = 1 TO NU 1160 WRITE #1,TIK$(A),NAM$( A),BUY(A),CURPR(A),SALESH(A),EPS(A),NUMSH(A),BVSH(A),O1(A) 1170 WRITE #1,O2(A),O3(A),O4(A),W1(A),W2(A),W3(A),W4(A),W5(A),W6(A),W7(A),W8(A),W9(A),WA(A),V1(A),V2(A),V3(A),V4(A),CURVOL(A),TIMELY(A),SAFE(A),YEARHI(A),YEARLO(A),DIVSH(A),PEAVG(A) 1180 NEXT A 1190 OPEN RK$+".NUM" FOR OUTPUT AS #2:WRITE #2,NU,DT$:CLOSE 1200 OPEN RK$+".MKT" FOR OUTPUT AS #3:FOR I = 1 TO 10:WRITE #3,HISTDAT$(I),DOW(I),VOL(I),UPS(I),DNS(I),HI(I),LO(I),BLK(I):NEXT I:CLOSE 1210 RETURN 1220 '====== SAVE WEEK PRICE 1230 FOR I = 1 TO NU:W1(I)=W2(I):W2(I)=W3(I):W3(I)=W4(I):W4(I)=W5(I):W5(I)=W6(I):W6(I)=W7(I):W7(I)=W8(I):W8(I)=W9(I):W9(I)=WA(I):WA(I)=CURPR(I):NEXT I 1240 LOCATE 25,68:COLOR 14,0:PRINT "Set. [RTN]" 1250 COLOR 7,0 1260 GOTO 610 1270 '====== 1 STOCK, 1 PAGE DISPLAY 1280 FOR I = 1 TO NU 1290 CLS:LOCATE 25,1 1300 PRINT "Number Last Next Tickers Quit ";I;"OF";NU;"Stocks." 1310 LOCATE 1,1:PRINT NAM$(I) 1320 LOCATE 1,25:PRINT TIK$(I) 1330 LOCATE 1,32:PRINT NUMSH(I);"@";:PRINT USING "###.##";BUY(I) 1340 LOCATE 1,50:PRINT USING "Cost: #####.##";BUY(I)*NUMSH(I) 1350 IF MOVAVG(I) < CURPR(I) THEN COLOR 0,4:LOCATE 1,25:PRINT TIK$(I);"=":COLOR 7,0 1360 PRINT 1370 PRINT USING "Current: #####.##";CURPR(I) 1380 'LOCATE 4,1:PRINT USING "Change: #####.##";CURPR(I)-BUY(I) 1390 LOCATE 3,50:PRINT USING "Value: #####.##";CURPR(I)*NUMSH(I) 1400 LOCATE 4,50:PRINT USING "Chg: #####.##";(CURPR(I)*NUMSH(I))-(BUY(I)*NUMSH(I)) 1410 LOCATE 5,50:PRINT USING "Pct chg: #####.##";((CURPR(I)/BUY(I))*100)-100;:PRINT"%" 1420 LOCATE 21,1:PRINT "Last four prices:";:PRINT USING " ###.##";O1(I);O2(I);O3(I);O4(I) 1430 LOCATE 22,1:PRINT "Last four volume:";:PRINT USING "#####00";V1(I);V2(I);V3(I);V4(I) 1440 LOCATE 23,1:COLOR 7,2:PRINT " Latest ten wks: ";:PRINT USING " ##.##";W1(I);W2(I);W3(I);W4(I);W5(I);W6(I);W7(I);W8(I);W9(I);WA(I);:PRINT" ":COLOR 7,0 1450 LOCATE 6,50:PRINT USING "Buy Com: ####.##";28 + ((NUMSH(I)*BUY(I))*(0.8/100)) 1460 LOCATE 7,50:PRINT USING "Sell Com: ####.##";28 + ((NUMSH(I)*CURPR(I))*(0.8/100)) 1470 LOCATE 8,50:COLOR 0,4:PRINT USING "NET CHG: #####.##";((CURPR(I)*NUMSH(I))-56 - ((NUMSH(I)*CURPR(I))*(0.8/100))-((NUMSH(I)*BUY(I))*(0.8/100)))-(BUY(I)*NUMSH(I)):COLOR 7,0 1480 LOCATE 4,1 1490 PRINT USING "Chg today: ##.##";CURPR(I)-O4(I) 1500 IF CURVOL(I) > V4(I) THEN COLOR 0,4 1510 LOCATE 5,1:PRINT USING "Vol today: #####00";CURVOL(I):COLOR 7,0 1520 LOCATE 6,1: PRINT USING "Wk chg: ###.##";CURPR(I)-W9(I) 1530 LOCATE 7,1: PRINT USING "Pct wk chg: ###.##";((CURPR(I)/W9(I))*100)-100;:PRINT"%" 1540 LOCATE 10,1 1550 PRINT USING "PSR: ##.##";CURPR(I)/SALESH(I) 1560 PRINT USING "PE: ##.##";CURPR(I)/EPS(I) 1570 PRINT USING "P/BV: ##.##";CURPR(I)/BVSH(I) 1580 PRINT USING "EPS ##.##";EPS(I) 1590 IF DIVSH(I) < 0.01 THEN PRINT "Div/share: NIL":GOTO 1610 1600 PRINT USING "Div/share: ##.##";DIVSH(I) 1610 PRINT USING "Earn Yield: ##.##%";(EPS(I)/CURPR(I))*100 1620 IF DIVSH(I) < 0.01 THEN PRINT "Div Yield: NIL":GOTO 1640 1630 PRINT USING "Div Yield: ##.##%";(DIVSH(I)/CURPR(I))*100 1640 LOCATE 10,25: PRINT USING "Sales/share: ###.##";SALESH(I) 1650 LOCATE ,25:PRINT USING "Book Val/sh: ##.##";BVSH(I) 1660 LOCATE ,25:PRINT "Timeliness: ";TIMELY(I) 1670 LOCATE ,25:PRINT "Safety: ";SAFE(I) 1680 LOCATE ,25:PRINT USING "Year High: ##.##";YEARHI(I) 1690 LOCATE ,25:PRINT USING "Year Low: ##.##";YEARLO(I) 1700 MOVAVG(I) = (W1(I)+W2(I)+W3(I)+W4(I)+W5(I)+W6(I)+W7(I)+W8(I)+W9(I)+WA(I))/10 1710 LOCATE ,25:PRINT USING "10 Wk Avg: ##.##";MOVAVG(I) 1720 RO = 11.5/10: '======11.5=BzWk ROE 1200 co.|10=VLine PE 8/18/84 ======= 1730 LOCATE 10,50: PRINT USING "ROE: ###.##";(EPS(I)/BVSH(I))*100 1740 IF ((EPS(I)/BVSH(I))*100)/(CURPR(I)/EPS(I)) =< (RO * 0.75) THEN COLOR 3,0 1750 IF ((EPS(I)/BVSH(I))*100)/(CURPR(I)/EPS(I)) => (RO * 1.5) THEN COLOR 0,5 1760 LOCATE ,50: PRINT USING "ROE/PE: ###.##";((EPS(I)/BVSH(I))*100)/(CURPR(I)/EPS(I)):COLOR 7,0 1770 LOCATE ,50: PRINT USING "MKT ROE/PE: ###.##";RO 1780 PBV=((DIVSH(I)/CURPR(I))*100)+(((EPS(I)-DIVSH(I))/BVSH(I))*100)/(CURPR(I)/EPS(I)):IF PBV => 2 THEN COLOR 0,5 1790 IF PBV < 2 THEN COLOR 3,0 1800 LOCATE ,50: PRINT USING "Buy Value: ###.##";PBV:COLOR 7,0 1810 LOCATE ,50: PRINT USING "5Yr Avg PE: ###.##";PEAVG(I) 1820 XB = PEAVG(I)/10.12 : XZ = (CURPR(I)/EPS(I))/9.8:REM 10.12=5 YR DJ PE 9.8 = DJ PE 4/5/84 1830 IF XB =< 0 THEN LOCATE ,50:PRINT "Chg Rel PE: NIL":GOTO 1870 1840 RELPE = ((XZ/XB)*100)-100:IF RELPE < 0 THEN COLOR 0,5 1850 IF RELPE => 0 THEN COLOR 3,0 1860 LOCATE ,50: PRINT USING "Chg Rel PE: ###.##";RELPE;:COLOR 7,0:PRINT"%" 1870 LOCATE ,50: PRINT USING "5Yr PE/DJ PE:###.##";XB 1880 LOCATE ,50: PRINT USING "Cur PE/DJ PE:###.##";XZ 1890 COLOR 0,3:LOCATE 3,25: PRINT USING "BUY BELOW: ###.##";EPS(I)*((EPS(I)/BVSH(I))*100)/(RO * 1.1):COLOR 7,0 1900 PRINT:PRINT 1910 X$=INKEY$:IF X$="" THEN 1910 1920 IF X$ <> "t" AND X$ <> "T" THEN 2010 1930 IF X$ = "t" OR X$ = "T" THEN LOCATE 25,1:PRINT "Last Next Select Quit ":FOR S = 1 TO NU:LOCATE 25,53:COLOR 0,5:PRINT USING " ## ";S;:PRINT USING "\ \";TIK$(S):COLOR 7,0 1940 TK$=INKEY$:IF TK$="" THEN 1940 1950 IF TK$ = "s" OR Q$="S" THEN I=S-1:GOTO 2080 1960 IF TK$ = "q" OR Q$="Q" THEN LOCATE 25,1:PRINT"Number Last Next Tickers Quit":GOTO 1910 1970 IF TK$ <> "l" AND S = NU THEN S = 0:GOTO 2000 1980 IF TK$ = "l" AND S = 1 THEN S = NU - 1:GOTO 2000 1990 IF TK$ = "l" THEN S = S - 2 2000 NEXT S 2010 IF X$ = "q" OR X$ = "Q" THEN 2120 2020 IF X$ = "l" AND I = 1 THEN I = NU - 1:GOTO 2080 2030 IF Q$ = "+" AND I = NU THEN I = 0:GOTO 3070 2040 IF X$ = "l" THEN I = I-2:GOTO 2080 2050 IF X$ = "a" OR X$ = "A" THEN GOSUB 3500:GOTO 1910 2060 IF VAL(X$) > 0 AND VAL(X$) <=9 THEN Y$=INKEY$:GOTO 2090 2070 IF I= NU THEN I = 0 2080 NEXT I 2090 IF Y$="" THEN 2060 2100 I = VAL(X$+Y$)-1:IF I+1 > NU THEN 1910 2110 GOTO 2080 2120 GOTO 490 2130 '====== SELECTIONS 2140 GOSUB 4240 2150 PRINT "Last Next Select Display Print Of";NU;"Stocks." 2160 M=0 2170 FOR I = 1 TO NU:LOCATE 25,55:COLOR 0,5:PRINT USING " ## ";I;:PRINT USING "\ \";TIK$(I):COLOR 7,0 2180 Q$=INKEY$:IF Q$="" THEN 2180 2190 IF Q$ = "d" OR Q$="D" THEN 490 2200 IF Q$ = "P" OR Q$="p" THEN 4460 2210 IF Q$ = "s" OR Q$="S" THEN M=M+1:COUNT1(M)=I:LOCATE 2+M,1:COLOR 0,2:PRINT USING "\ \";TIK$(I):COLOR 7,0:IF M = 14 THEN LOCATE 25,65:PRINT"Display Print": GOTO 2180 2220 IF Q$ <> "l" AND I = NU THEN I = 0:GOTO 2250 2230 IF Q$ = "l" AND I = 1 THEN I = NU - 1:GOTO 2250 2240 IF Q$ = "l" THEN I = I - 2 2250 NEXT I 2260 GOTO 490 2270 '====== BPORT DISPLAY 2280 CLS:LOCATE 1,1:PRINT "Tick T Buy Cur Chg V00 PSR PE P/BV EYld DYld %Ch Com Brk= Net " 2290 ' 2300 LOCATE 25,45:PRINT "Portfolio: ";LEFT$(RK$,5)+" "+DT$ 2310 FOR K = 1 TO NU:PO = K+2:TA=0:TB=0 2320 IF K > 20 AND K <= 40 THEN PO = K - 18 2330 IF K >= 41 AND K < 60 THEN PO = K - 38 2340 MOVAVG(K) = (W1(K)+W2(K)+W3(K)+W4(K)+W5(K)+W6(K)+W7(K)+W8(K)+W9(K)+WA(K))/10 2350 LOCATE PO,1:PRINT TIK$(K) 2360 IF MOVAVG(K) < CURPR(K) THEN COLOR 0,5 2370 LOCATE PO,7 :PRINT USING "#";TIMELY(K):COLOR 7,0 2380 LOCATE PO,9:PRINT USING "##.##";BUY(K) 2390 IF CURPR(K) > O4(K) THEN COLOR 14,0 2400 IF CURPR(K) < O4(K) THEN COLOR 3,0 2410 IF CURPR(K) > (O4(K)*1.04) THEN COLOR 0,5 2420 IF CURPR(K) < (O4(K)*0.96) THEN COLOR 0,1 2430 LOCATE PO,15:PRINT USING "##.##";CURPR(K) 2440 LOCATE PO,21:PRINT USING "##.##";CURPR(K)-O4(K):COLOR 7,0 2450 VOLAVG(K)=(V1(K)+V2(K)+V3(K)+V4(K)+CURVOL(K))/5 2460 IF CURVOL(K) > VOLAVG(K) THEN COLOR 14,0 2470 IF CURVOL(K) > VOLAVG(K)*1.75 THEN COLOR 0,5 2480 IF CURVOL(K) < VOLAVG(K) THEN COLOR 3,0 2490 IF CURVOL(K) < VOLAVG(K) *0.5 THEN COLOR 0,1 2500 LOCATE PO,27:PRINT USING "#####";CURVOL(K):COLOR 7,0 2510 IF CURPR(K)/SALESH(K) < 1 THEN COLOR 0,5 2520 IF CURPR(K)/SALESH(K) > 1 THEN COLOR 3,0 2530 LOCATE PO,33:PRINT USING "#.##";CURPR(K)/SALESH(K):COLOR 7,0 2540 PERATIO(K)=CURPR(K)/EPS(K):IF PERATIO(K) > 99 THEN PERATIO(K)=99 2550 LOCATE PO,37:PRINT USING " ##";PERATIO(K) 2560 IF CURPR(K)/BVSH(K) < 1 THEN COLOR 0,5 2570 IF CURPR(K)/BVSH(K) > 1 THEN COLOR 3,0 2580 LOCATE PO,41:PRINT USING "##.#";CURPR(K)/BVSH(K):COLOR 7,0 2590 LOCATE PO,45:PRINT USING " ##.#";(EPS(K)/CURPR(K))*100 2600 BUYCOM(K) = 28 + ((NUMSH(K)*BUY(K))*(0.8/100)) 2610 SELCOM(K) = 28 + ((NUMSH(K)*CURPR(K))*(0.8/100)) 2620 TOTCOM(K)=BUYCOM(K)+SELCOM(K) 2630 BRKEVEN(K)=CURPR(K)+(TOTCOM(K)/NUMSH(K)) 2640 IF DIVSH(K) <= 0.01 THEN LOCATE PO,50:PRINT " NIL":GOTO 2660 2650 LOCATE PO,50 :PRINT USING " ##.#";(DIVSH(K)/CURPR(K))*100 2660 PCTCHG(K)=INT((CURPR(K)/BUY(K))*100)-100 2670 IF PCTCHG(K) <= -15 THEN COLOR 0,2 2680 IF PCTCHG(K) >= 15 THEN COLOR 0,5 2690 LOCATE PO,56:PRINT USING "###";PCTCHG(K):COLOR 7,0 2700 LOCATE PO,59:PRINT USING " ###";TOTCOM(K) 2710 LOCATE PO,63 :PRINT USING " ##.##";BRKEVEN(K) 2720 IF CURPR(K) > BUY(K)+(TOTCOM(K)/NUMSH(K)) THEN COLOR 14,0 2730 IF CURPR(K) >(BUY(K)+(TOTCOM(K)/NUMSH(K)))*1.15 THEN COLOR 0,5 2740 IF CURPR(K) < (BUY(K)+(TOTCOM(K)/NUMSH(K))) THEN COLOR 3,0 2750 IF CURPR(K) < (BUY(K)+(TOTCOM(K)/NUMSH(K)))*0.85 THEN COLOR 0,2 2760 LOCATE PO,76:PRINT USING "#####";(CURPR(K)*NUMSH(K))-(BUY(K)*NUMSH(K))-TOTCOM(K):COLOR 7,0 2770 TA = CURPR(K)*NUMSH(K):TT = TA + TT: TB = BUY(K)*NUMSH(K):TC = TB + TC:TA=0:TB=0:MC=MC+ TOTCOM(K) 2780 IF M <> 0 THEN RETURN 2790 IF K = 20 THEN GOSUB 2840 2800 IF K = 40 THEN GOSUB 2840 2810 NEXT K 2820 TT=0:TC=0:MC=0 2830 GOTO 610 2840 TT=0:TC=0:MC=0 2850 LOCATE 25,1:PRINT"Rtn/Q: ";:COLOR 14,0:PRINT "Up ":LOCATE 25,12:COLOR 0,5:PRINT"4%P":LOCATE 25,16:PRINT"75%V":LOCATE 25,21:PRINT"15%N";:COLOR 3,0:PRINT" Down ";:COLOR 0,1:PRINT"4%P":LOCATE 25,35:COLOR 0,1:PRINT"50%V":LOCATE 25,40:PRINT"15%N" 2860 COLOR 7,0 2870 Q$=INKEY$:IF Q$="" THEN 2870 2880 IF Q$ = "q" OR Q$ = "Q" THEN 610 2890 CLS:LOCATE 1,1:PRINT "Tick T Buy Cur Chg V00 PSR PE P/BV EYld DYld %Ch Com Brk= Net " 2900 ' 2910 LOCATE 25,45:PRINT "Portfolio: ";LEFT$(RK$,5)+" "+DT$ 2920 RETURN 2930 '====== CHANGE FUNDAMENTALS 2940 'CLS:LOCATE 25,1 2950 ' 2960 ' 2970 ' 2980 GOSUB 4240:PRINT "Last Next Select Add Quit At stock, RTN=No Chg. ";NU;" Stocks. " 2990 FOR I = 1 TO NU:LOCATE 25,67:COLOR 0,5:PRINT USING " ## ";I;:PRINT USING "\ \";TIK$(I):COLOR 7,0 3000 Q$=INKEY$:IF Q$="" THEN 3000 3010 IF Q$ = "q" OR Q$="Q" THEN 490 3020 IF Q$ = "s" OR Q$="S" THEN 3080 3030 IF Q$ = "a" OR Q$="A" THEN I=NU+1:NU=NU+1:GOTO 3250 3040 IF Q$ <> "l" AND I = NU THEN I = 0:GOTO 3070 3050 IF Q$ = "l" AND I = 1 THEN I = NU - 1:GOTO 3070 3060 IF Q$ = "l" THEN I = I - 2 3070 NEXT I 3080 IF I = 0 THEN 3410 3090 IF I > NU THEN 2990 3100 CLS:LOCATE 1,1 3110 PRINT"Ticker: ";TIK$(I) 3120 PRINT"Ex & Name: ";NAM$(I) 3130 PRINT"Buy Price: ";BUY(I) 3140 PRINT"Cur Price: ";CURPR(I) 3150 PRINT"Num shares: ";NUMSH(I) 3160 PRINT"5 Yr Avg PE: ";PEAVG(I) 3170 PRINT"Sales/share: ";SALESH(I) 3180 PRINT"Earn/share: ";EPS(I) 3190 PRINT"Book Val/sh: ";BVSH(I) 3200 PRINT"Dividend/Sh: ";DIVSH(I) 3210 PRINT"Timeliness: ";TIMELY(I) 3220 PRINT"Safety: ";SAFE(I) 3230 PRINT"Year High: ";YEARHI(I) 3240 PRINT"Year Low: ";YEARLO(I) 3250 LOCATE 1,40:INPUT "Ticker: ",N1$:IF N1$ <> "" THEN TIK$(I)=N1$ 3260 LOCATE ,40:INPUT "Ex/Name:",N2$:IF N2$ <> "" THEN NAM$(I)=N2$ 3270 LOCATE ,40:INPUT "Buy Pr :",N1: IF N1 <> 0 THEN BUY(I) = N1 3280 LOCATE ,40:INPUT "Cur Pr :",LN: IF LN <> 0 THEN CURPR(I) = LN 3290 LOCATE ,40:INPUT "Num Sh :",N0: IF N0 <> 0 THEN NUMSH(I) = N0 3300 LOCATE ,40:INPUT "5 Yr PE:",OP: IF OP <> 0 THEN PEAVG(I) = OP 3310 LOCATE ,40:INPUT "Sale/Sh:",N2: IF N2 <> 0 THEN SALESH(I) = N2 3320 LOCATE ,40:INPUT "Earn/Sh:",N3: IF N3 <> 0 THEN EPS(I) = N3 3330 LOCATE ,40:INPUT "BV/Sh: ",N4: IF N4 <> 0 THEN BVSH(I) = N4 3340 LOCATE ,40:INPUT "Div/Sh: ",N9: IF N9 <> 0 THEN DIVSH(I) = N9 3350 LOCATE ,40:INPUT "Timely: ",N5: IF N5 <> 0 THEN TIMELY(I) = N5 3360 LOCATE ,40:INPUT "Safety: ",N6: IF N6 <> 0 THEN SAFE(I) = N6 3370 LOCATE ,40:INPUT "Year Hi:",N7: IF N7 <> 0 THEN YEARHI(I) = N7 3380 LOCATE ,40:INPUT "Year Lo:",N8:IF N8 <> 0 THEN YEARLO(I) = N8 3390 LOCATE ,40:INPUT "10 wks Y/N:",Q$:IF Q$ = "y" OR Q$ = "Y" THEN 3420 3400 GOTO 2980 3410 RETURN 3420 FOR WW = 1 TO 10: LOCATE 23,28:PRINT" ":LOCATE 23,1:INPUT "Weekly close, recent last: ",M0(WW):NEXT WW 3430 W1(I)=M0(1):W2(I)=M0(2):W3(I)=M0(3):W4(I)=M0(4):W5(I)=M0(5):W6(I)=M0(6):W7(I)=M0(7):W8(I)=M0(8):W9(I)=M0(9):WA(I)=M0(10) 3440 LOCATE 23,1:PRINT SPACE$(40) 3450 GOTO 2980 3460 '====== RESET FUNCTION KEYS 3470 KEY 1,"LIST "+CHR$(13):KEY 5,"EDIT ":KEY 6,"CLS"+CHR$(13):KEY 7,"List " 3480 KEY 2,"RUN"+CHR$(13):KEY 3,"LOAD "+CHR$(34):KEY 4,"SAVE "+CHR$(34):KEY 8,"list 480 - "+CHR$(13): KEY 9,"list 2140 -"+CHR$(13):KEY 10,"list 4420 -"+CHR$(13) 3490 RETURN 3500 ' 3510 '===== PRINT PORTFOLIO 3520 LPRINT "Portfolio, date: ";RK$;" ";DT$;" Printout date: ";DATE$:LPRINT 3530 LPRINT "Tick T Buy Cur Chg V00 10Wk SIG1 SIG2 PSR PE B/BV %Ch 2Cm BrkEv Net " 3540 LPRINT "-----|-|-----|-----|-----|-----|----|----|----|----|--|----|---|---|-----|-----" 3550 FOR K = 1 TO NU:PO = K+2:TA=0:TB=0 3560 MOVAVG(K) = (W1(K)+W2(K)+W3(K)+W4(K)+W5(K)+W6(K)+W7(K)+W8(K)+W9(K)+WA(K))/10 3570 LPRINT TIK$(K) TAB(6); 3580 IF MOVAVG(K) < CURPR(K) THEN LPRINT"a"; 3590 IF MOVAVG(K) >= CURPR(K) THEN LPRINT"b"; 3600 LPRINT USING "#";TIMELY(K); 3610 LPRINT USING " ##.##";BUY(K); 3620 LPRINT USING " ##.##";CURPR(K); 3630 IF CURPR(K) >= (O4(K)*1.04) THEN LPRINT "DEFDBL"; 3640 IF CURPR(K) <= (O4(K)*0.96) THEN LPRINT "SWAP"; 3650 IF CURPR(K) > (O4(K)*0.96) AND CURPR(K) < (O4(K)*1.04) THEN LPRINT " "; 3660 LPRINT USING "##.##";CURPR(K)-O4(K); 3670 VOLAVG(K)=(V1(K)+V2(K)+V3(K)+V4(K)+CURVOL(K))/5 3680 LPRINT USING "######";CURVOL(K); 3690 IF CURVOL(K) >= VOLAVG(K)*1.75 THEN LPRINT "DEFDBL";:GOTO 3720 3700 IF CURVOL(K) <= VOLAVG(K) *0.5 THEN LPRINT "SWAP";:GOTO 3720 3710 IF CURVOL(K) > VOLAVG(K) *0.5 AND CURVOL(K) < VOLAVG(K)*1.75 THEN LPRINT " "; 3720 LPRINT USING "##.#";MOVAVG(K); 3730 PBV=((DIVSH(K)/CURPR(K))*100)+(((EPS(K)-DIVSH(K))/BVSH(K))*100)/(CURPR(K)/EPS(K)):IF PBV => 2 THEN LPRINT " BUY ";:GOTO 3742 3740 IF PBV < 2 THEN LPRINT " SELL";:GOTO 3742 3742 RO = 11.5/10: '======11.5=BzWk ROE 1200 co.|10=VLine PE 8/18/84 ======= 3744 IF ((EPS(K)/BVSH(K))*100)/(CURPR(K)/EPS(K)) =< (RO * 0.75) THEN LPRINT " SELL";:GOTO 3750 3746 IF ((EPS(K)/BVSH(K))*100)/(CURPR(K)/EPS(K)) => (RO * 1.75) THEN LPRINT " BUY ";:GOTO 3750 3748 LPRINT " WAIT"; 3750 LPRINT USING " #.##";CURPR(K)/SALESH(K); 3760 IF CURPR(K)/EPS(K) > 99 THEN LPRINT " 99";:GOTO 3780 3770 LPRINT USING " ##";CURPR(K)/EPS(K); 3780 LPRINT USING " #.#";CURPR(K)/BVSH(K); 3790 BUYCOM(K) = 28 + ((NUMSH(K)*BUY(K))*(0.8/100)) 3800 SELCOM(K) = 28 + ((NUMSH(K)*CURPR(K))*(0.8/100)) 3810 TOTCOM(K)=BUYCOM(K)+SELCOM(K) 3820 BRKEVEN(K)=BUY(K)+(TOTCOM(K)/NUMSH(K)) 3830 LPRINT USING " ###";INT((CURPR(K)/BUY(K))*100)-100; 3840 LPRINT USING " ###";TOTCOM(K); 3850 LPRINT USING " ##.##";BRKEVEN(K); 3860 LPRINT USING "#####";(CURPR(K)*NUMSH(K))-(BUY(K)*NUMSH(K))-TOTCOM(K); 3870 IF CURPR(K) <= (BUY(K)+(TOTCOM(K)/NUMSH(K)))*0.85 THEN LPRINT "SWAP";:GOTO 3900 3880 IF CURPR(K) >= (BUY(K)+(TOTCOM(K)/NUMSH(K)))*1.15 THEN LPRINT "DEFDBL";:GOTO 3900 3900 LPRINT " " 3940 NEXT K: RETURN 3950 TA = CURPR(K)*NUMSH(K):TT = TA + TT: TB = BUY(K)*NUMSH(K):TC = TB + TC:TA=0:TB=0:MC=MC+ TOTCOM(K) 3960 IF M <> 0 THEN RETURN 3970 IF K = 20 THEN GOSUB 4020 3980 IF K = 40 THEN GOSUB 4020 3990 NEXT K 4000 TT=0:TC=0:MC=0 4010 GOTO 610 4020 TT=0:TC=0:MC=0 4030 LOCATE 25,1:PRINT "RTN or Quit: ":Q$=INKEY$:IF Q$="" THEN 4030 4040 IF Q$ = "q" OR Q$ = "Q" THEN 610 4050 CLS:LOCATE 1,1:PRINT "Tick T Buy Cur Chg V00 PSR PE B/BV EYld DYld %Ch Com Brk= Net " 4060 PRINT "-----|-|-----|-----|-----|-----|----|--|----|----|----|---|---|-----------|-----":LOCATE 25,38:PRINT "Portfolio: ";RK$;" ";DT$ 4070 RETURN 4080 '====== MARKET AVERAGES 4090 GOSUB 4240:LOCATE 25,1:PRINT "NewData View Quit" 4100 Q$=INKEY$:IF Q$="" THEN 4100 4110 IF Q$ = "q" OR Q$ = "Q" THEN RETURN 4120 IF Q$ <> "n" AND Q$ <> "N" THEN 4250 4130 GOSUB 4360 4140 GOSUB 4240 4150 LOCATE 25,1:INPUT "Date (MTH00): ",HISTDAT$(10):GOSUB 4240 4160 LOCATE 25,1:INPUT "Dow close: ",DOW(10):GOSUB 4240 4170 LOCATE 25,1:INPUT "NYSE vol (mils): ",VOL(10):GOSUB 4240 4180 LOCATE 25,1:INPUT "Advances: ",UPS(10):GOSUB 4240 4190 LOCATE 25,1:INPUT "Declines: ",DNS(10):GOSUB 4240 4200 LOCATE 25,1:INPUT "New highs: ",HI(10):GOSUB 4240 4210 LOCATE 25,1:INPUT "New lows: ",LO(10):GOSUB 4240 4220 LOCATE 25,1:INPUT "Blocks: ",BLK(10):GOSUB 4240 4230 GOTO 4250:'RETURN 4240 LOCATE 25,1:PRINT SPACE$(80):LOCATE 25,1:RETURN 4250 '====== MARKET PAGE 4260 CLS:PRINT:PRINT "DATE: ";:FOR I = 1 TO 10: PRINT " ";HISTDAT$(I);:NEXT I:PRINT 4270 PRINT: PRINT"CLOSE: ";:FOR I = 1 TO 10: PRINT USING " ####.#";DOW(I);:NEXT I 4280 PRINT:PRINT"VOLUME: ";:FOR I = 1 TO 10: PRINT USING " ######";VOL(I);:NEXT I 4290 PRINT:PRINT"ADVANCES:";:FOR I = 1 TO 10: PRINT USING " ######";UPS(I);:NEXT I 4300 PRINT:PRINT"DECLINES:";:FOR I = 1 TO 10: PRINT USING " ######";DNS(I);:NEXT I 4310 PRINT:PRINT"NEW HIGH:";:FOR I = 1 TO 10: PRINT USING " ######";HI(I);:NEXT I 4320 PRINT:PRINT"NEW LOW: ";:FOR I = 1 TO 10: PRINT USING " ######";LO(I);:NEXT I 4330 PRINT:PRINT"BLOCKS: ";:FOR I = 1 TO 10: PRINT USING " ######";BLK(I);:NEXT I 4340 RETURN 4350 END 4360 FOR I = 1 TO 9:HISTDAT$(I)=HISTDAT$(I+1):NEXT I 4370 FOR I = 1 TO 9:DOW(I)=DOW(I+1):NEXT I 4380 FOR I = 1 TO 9:VOL(I)=VOL(I+1):NEXT I 4390 FOR I = 1 TO 9:UPS(I)=UPS(I+1):NEXT I 4400 FOR I = 1 TO 9:DNS(I)=DNS(I+1):NEXT I 4410 FOR I = 1 TO 9:HI(I)=HI(I+1):NEXT I 4420 FOR I = 1 TO 9:LO(I)=LO(I+1):NEXT I 4430 FOR I = 1 TO 9:BLK(I)=BLK(I+1):NEXT I 4440 RETURN 4450 '====== PRINT INDIVIDUAL PAGES 4460 CLS: FOR A = 1 TO M: I = COUNT1(A):PRINT NAM$(I):NEXT A:LOCATE 25,1:PRINT"Reports going to printer." 4470 FOR A = 1 TO M:I = COUNT1(A) 4480 LPRINT NAM$(I);" "; 4490 LPRINT TIK$(I);" "; 4500 LPRINT NUMSH(I);"@";:LPRINT USING "###.##";BUY(I);:LPRINT" "; 4510 LPRINT USING "Cost: #####.##";BUY(I)*NUMSH(I) 4520 'LPRINT 4530 '====== LINE # 1 4540 LPRINT USING "CURPRICE: ####.##";CURPR(I); 4550 LPRINT USING " DAYCHG: ##.##";CURPR(I)-O4(I); 4560 LPRINT USING " PSR: #.##";CURPR(I)/SALESH(I); 4570 LPRINT USING " SALE/SH:###.##";SALESH(I) 4580 '====== LINE 2 4590 LPRINT USING "CHG: ####.##";CURPR(I)-BUY(I); 4600 LPRINT USING " DAYVOL:#####00";CURVOL(I); 4610 LPRINT USING " PE: ##.##";CURPR(I)/EPS(I); 4620 LPRINT USING " BV/SH: ##.##";BVSH(I) 4630 '====== LINE 3 4640 LPRINT USING "CURVAL: ####.##";CURPR(I)*NUMSH(I); 4650 LPRINT USING " WKCHG: ##.##";CURPR(I)-W9(I); 4660 LPRINT USING " P/BV: ##.##";CURPR(I)/BVSH(I); 4670 LPRINT " TIME: ";TIMELY(I) 4680 '======= LINE 4 4690 LPRINT USING "CHGVAL: ######.##";(CURPR(I)*NUMSH(I))-(BUY(I)*NUMSH(I)); 4700 LPRINT USING " WKPCT: %###.##";((CURPR(I)/W9(I))*100)-100; 4710 LPRINT USING " EPS: ##.##";EPS(I); 4720 LPRINT " SAFE: ";SAFE(I) 4730 '======= LINE 5 4740 LPRINT USING "PCTCHG: %###.##";((CURPR(I)/BUY(I))*100)-100; 4750 RO = 11.5/10: '======11.5=BzWk ROE 1200 co.|10=VLine PE 8/19/84 4760 LPRINT USING " ROE: ###.##";(EPS(I)/BVSH(I))*100; 4770 IF DIVSH(I) < 0.01 THEN LPRINT " D/SH: NIL";:GOTO 4790 4780 LPRINT USING " D/SH: ##.##";DIVSH(I); 4790 LPRINT USING " HIGH: ##.##";YEARHI(I) 4800 '====== LINE 6 4810 LPRINT USING "BUYCOM: ###.##";28 + ((NUMSH(I)*BUY(I))*(0.8/100)); 4820 LPRINT USING " ROE/PE: ###.##";((EPS(I)/BVSH(I))*100)/(CURPR(I)/EPS(I)); 4830 LPRINT USING " EARNYLD:%##.##";(EPS(I)/CURPR(I))*100; 4840 LPRINT USING " LOW: ##.##";YEARLO(I) 4850 '====== LINE 7 4860 LPRINT USING "SELLCOM: ###.##";28 + ((NUMSH(I)*CURPR(I))*(0.8/100)); 4870 LPRINT USING " MKROE/PE:##.##";RO; 4880 IF DIVSH(I) < 0.01 THEN LPRINT " DIVYLD: NIL";:GOTO 4900 4890 LPRINT USING " DIVYLD: %##.##";(DIVSH(I)/CURPR(I))*100; 4900 MOVAVG(I) = (W1(I)+W2(I)+W3(I)+W4(I)+W5(I)+W6(I)+W7(I)+W8(I)+W9(I)+WA(I))/10 4910 LPRINT USING " 10WKAVG: ##.##";MOVAVG(I) 4920 '====== LINE 8 4930 LPRINT USING "NETCHG: #####.##";((CURPR(I)*NUMSH(I))-56 - ((NUMSH(I)*CURPR(I))*(0.8/100))-((NUMSH(I)*BUY(I))*(0.8/100)))-(BUY(I)*NUMSH(I)); 4940 PBV=((DIVSH(I)/CURPR(I))*100)+(((EPS(I)-DIVSH(I))/BVSH(I))*100)/(CURPR(I)/EPS(I)): 'IF PBV => 2 THEN LPRINT"*"; 4950 LPRINT USING " BUYVAL: ###.##";PBV; 4960 LPRINT USING " 5YRPE: ###.##";PEAVG(I); 4970 XB = PEAVG(I)/10.12 : XZ = (CURPR(I)/EPS(I))/8.9: '========================10.12=5DJPE|8.9=DJPE 5/24/84==== 4980 IF XB =< 0 THEN LPRINT " CHGPE: NIL":GOTO 5010 4990 RELPE = ((XZ/XB)*100)-100 5000 LPRINT USING " CHGPE: %###.##";RELPE 5010 LPRINT USING "5YRPE/DJ: ###.##";XB; 5020 LPRINT USING " PE/DJPE:###.##";XZ; 5030 LPRINT USING " BUY AT: ###.##";EPS(I)*((EPS(I)/BVSH(I))*100)/(RO * 1.1):LPRINT 5040 LPRINT "4 PRICES:";:LPRINT USING " ##.##";O1(I);O2(I);O3(I);O4(I) 5050 LPRINT "4 VOLUME:";:LPRINT USING "#####00";V1(I);V2(I);V3(I);V4(I) 5060 LPRINT "10 WEEKS:";:LPRINT USING " ##.##";W1(I);W2(I);W3(I);W4(I);W5(I);W6(I);W7(I);W8(I);W9(I);WA(I);:LPRINT" ":COLOR 7,0 5070 LPRINT 5080 IF A = 4 OR A=8 OR A=12 OR A=16 THEN LPRINT CHR$(12) 5090 NEXT A 5100 GOTO 490 5110 '=============== TO GET NEW STOCKS FROM A FILE 5120 CLS:IF RK$="" THEN 5150 5130 TMPRK$=RK$ 5140 PRINT "Extra Stock file is [";RK$;"]";:INPUT " Is this acceptable (Y/N): ",ACCEPT$:IF ACCEPT$="n"OR ACCEPT$ ="N" THEN 5150 ELSE 5160 5150 INPUT "New Extra Stock filename: ",TMPRK$ 5160 PRINT"Data must be in this order. # shares, Timeliness, Safety, B/V,":PRINT"and Sales/Share are adjusted with Chg at 2nd menu.":PRINT:PRINT"TICKER":PRINT"BUY PRICE":PRINT"CURRENT PRICE" 5170 PRINT"EARNINGS PER SHARE":PRINT"5 YEAR AVG PE (OR CURRENT)":PRINT"DIVIDEND PER SHARE" 5180 PRINT"YEAR HIGH (OR RECENT)":PRINT"YEAR LOW (OR RECENT)" 5190 LOCATE 25,1:INPUT "Number/stocks (0 Aborts): ",NUSTK 5200 IF NUSTK = 0 THEN GOTO 5270 5210 OPEN TMPRK$+".ADD" FOR INPUT AS #2 5220 FOR A = NU+1 TO NU +NUSTK 5230 INPUT #2,TIK$(A),BUY(A),CURPR(A),EPS(A),PEAVG(A),DIVSH(A),YEARHI(A),YEARLO(A) 5240 NUMSH(A)=100:BVSH(A)=1:SALESH(A)=1:TIMELY(A)=0:SAFE(A)=0 5250 ' 5260 NEXT A 5270 CLOSE: NU = NU + NUSTK: GOTO 610 5280 '